'''
OpenMV4P_micro
二维码识别

因为扩大画面，所以帧速略低，但识别率还可以。识别完成后显示字符，暂不支持中文（下一版本更新可支持）。

操作说明：
识别后画面静止，按右键继续识别。

'''
import sensor, time,lcd
from button import BUTTON

sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.V240X240)
sensor.skip_frames(time=1000) # Let new settings take affect.
#sensor.set_vflip(True)
#sensor.set_hmirror(True)

clock = time.clock()
#lcd.init(type=2,width=240,height=320)
lcd.init()
button=BUTTON()  #声明按键，梦飞openmv只有一个按键，因此直接内部指定了按键

while True:
    img = sensor.snapshot()
    codes = img.find_qrcodes()
    #print(codes)
    if codes:
        for code in codes:
            img.draw_rectangle(code.rect(), color = (255, 0, 0))
            img.draw_string(code[0],code[1]-10, "result:%s"%code.payload(),scale=1,color = (255, 0, 0))
    lcd.display(img)
    #长按退出
    if button.state():
        click_timer=time.ticks_ms()          #开始计时
        while button.state():  pass       #等待按键抬起
        if time.ticks_ms()-click_timer>2000: #按键时长超过2s
            break                         #循环退出，回到主界面
    else :
        click_timer=time.ticks_ms()#计时更新
